/**
 * 工程名: 	Quickdisk
 * 文件名: 	LoginInterceptor.java
 * 创建人:  	guo.tianxiang
 * 创建时间: 	2014-4-27 下午12:04:57
 * 版权所有：	Guo Tianxiang 
 * 文件描述: 描述该文件的作用
 * -----------------------------变更记录 ----------------------------- 
 * 日期        		变更人      		版本号  		变更描述  
 * ------------------------------------------------------------------  
 * 2014-4-27     guo.tianxiang   	1.0       	first created  
 */
package com.tianxiang.intercept;

import java.util.Map;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.tianxiang.model.Admin;

/**
 * 自定义的登录拦截器，拦截所有请求，用户核查用户是否已经登录
 * 
 * @since Quickdisk 0.1
 * @version 1.0 2014-5-23
 * @author guo.tianxiang
 */
public class AdminLoginInterceptor extends AbstractInterceptor {

	private static final long serialVersionUID = -8075611215936126551L;
	private static final String LOGINED_SESSION_KEY = "loginadmin";

	  public void destroy() {}  
	  
	  public void init() {}  
	  
	@Override
	public String intercept(ActionInvocation actionInvocation) throws Exception {
		// 取得Session
		Map<String, Object> session = actionInvocation.getInvocationContext()
				.getSession();
		// 从Session里获得登录时保存进session的User类
		Admin admin = (Admin) session.get(LOGINED_SESSION_KEY);
		// 判断用户名是否为空
		boolean isAuthenticated = (null != admin);
		if (!isAuthenticated) {// 如果未通过登录验证

			// 下面的那个return怎么能返回登录页面
			return Action.LOGIN; // 返回登录页面

		} else {
			// 下面的这个actionInvocation.invoke()是什么意思
			return actionInvocation.invoke();// 返回验证通过
		}
	}

}
